package annotation.test1;

//串讲步骤4: 解析注解 StudyAnnotation,拿到注解中的值
/**
 * @author 甘赵辉
 * @date 2023/2/28
 */
public class Main {
    public static void main(String[] args) throws ClassNotFoundException {
        /*
        获取类对象有3种方式
            1. Class.forName
            2. Hero.class
            3. new Hero().getClass()
         */
        //获取StudyAnnotation的类对象, 即获取注解StudyAnnotation的字节码文件
        Class<?> aClass1 = Class.forName("annotation.test1.UseAnnotataion");

        //通过 类对象.getAnnotation(注解类对象) 得到 注解对象
        AnnotationForStudy annotation = aClass1.getAnnotation(AnnotationForStudy.class);

        // 通过注解对象.元素() ,得到注解中的元素值
        String ip = annotation.ip();
        int port = annotation.port();
        String database = annotation.database();
        Encoding[] value = annotation.value();
        String loginName = annotation.loginName();
        String password = annotation.password();
        System.out.println(
                "ip是"+ ip+
                        ", 端口是"+ port +
                        ", 数据库是"+ database +
                        ", 支持编码有"+ value[0]+"和" + value[1] +
                        ", 登录的用户名"+ loginName +
                        ", 密码"+ password
        );

    }
}
